package com.wangsh.userscenter.service.users.api;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.wangsh.userscenter.common.util.PageInfoUtil;
import com.wangsh.userscenter.service.users.pojo.AAdmins;
import com.wangsh.userscenter.service.users.pojo.AUsers;
import com.wangsh.userscenter.service.users.pojo.AUsersExtend;

public interface IUsersService
{

	/*----------管理员开始-----------*/

	/**
	 * 添加一个管理员
	 * 
	 * @param admins
	 * @return
	 */
	JSONObject saveOneAdminsService(AAdmins admins);

	/**
	 * 更新一个管理员
	 * 
	 * @param admins
	 * @return
	 */
	JSONObject updateOneAdminsService(AAdmins admins);

	/**
	 * 删除一个管理员
	 * 
	 * @param admins
	 * @return
	 */
	JSONObject deleteOneAdminsService(AAdmins admins);

	/**
	 * 查询一个记录
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	AAdmins findOneAdminsService(Map<String, Object> condMap);

	/**
	 * 查询多条记录
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	List<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 添加管理员Ticket
	 * @param ticket
	 * @return
	 */
	boolean addAdminsTicketService(AAdmins adminsTicket);
	
	/**
	 * 根据管理员Ticket获取对象
	 * @param ticket
	 * @return
	 */
	JSONObject verifyAdminsTicketService(String ticket);
	/*----------管理员结束-----------*/

	/*----------用户开始-----------*/

	/**
	 * 添加一个用户
	 * 
	 * @param users
	 * @return
	 */
	JSONObject saveOneUsersService(AUsers users);

	/**
	 * 更新一个用户
	 * 
	 * @param users
	 * @return
	 */
	JSONObject updateOneUsersService(AUsers users);
	
	/**
	 * 更新一个用户
	 * 主要是更新图片
	 * @param users
	 * @return
	 */
	JSONObject updateOneUsersService(AUsers users,MultipartFile multipartFile) throws Exception;

	/**
	 * 删除一个用户
	 * 
	 * @param users
	 * @return
	 */
	JSONObject deleteOneUsersService(AUsers users);

	/**
	 * 查询一个记录
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	AUsers findOneUsersService(Map<String, Object> condMap);

	/**
	 * 查询多条记录
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	List<AUsers> findCondListUsersService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	
	/**
	 * 添加Ticket
	 * @param ticket
	 * @return
	 */
	boolean addUsersTicketService(AUsers usersTicket);
	
	/**
	 * 根据Ticket获取对象
	 * @param ticket
	 * @return
	 */
	JSONObject verifyUsersTicketService(String ticket);
	/*----------用户结束-----------*/
	
	/*----------用户扩展信息开始-----------*/
	/**
	 * 添加一个用户扩展信息
	 * 
	 * @param usersExtend
	 * @return
	 */
	JSONObject saveOneUsersExtendService(AUsersExtend usersExtend);

	/**
	 * 更新一个用户扩展信息
	 * 
	 * @param usersExtend
	 * @return
	 */
	JSONObject updateOneUsersExtendService(AUsersExtend usersExtend);

	/**
	 * 删除一个用户扩展信息
	 * 
	 * @param usersExtend
	 * @return
	 */
	JSONObject deleteOneUsersExtendService(AUsersExtend usersExtend);

	/**
	 * 查询一个记录
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	AUsersExtend findOneUsersExtendService(Map<String, Object> condMap);

	/**
	 * 查询多条记录
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	List<AUsersExtend> findCondListUsersExtendService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
	/*----------用户扩展信息结束-----------*/
}
